home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
LOGIC Apps
/
Logic-APPLE_II_APPS.iso
/
mac
/
LOGIC Apple II 5.25" Library - ProDOS
/
PRO003.dsk
/
DEMOS
/
LOTTO.COMPUTER.bas
< prev
next >
Wrap
BASIC Source File
|
2012-02-16
|
10KB
|
230 lines
1 GOSUB 10000: FOR X = 768 TO 777: READ I: POKE X,I: NEXT X
2 ONERR GOTO 9000
3 DATA 104,168,104,166,223,154,72,152,72,96
4 FILE$ = "DEMOS/LOGIC.GROUP":A = 0:D$ = CHR$(4)
5 PRINT CHR$(4);"NOMON C"
10 DIM MN(100,6),WN(6),EB(4),FL(100,6,2),G(100)
15 GOTO 1000
42 REM PLAY THE LOTTARIES
43 HOME : IF A <1 THEN FLASH : VTAB 12: HTAB 10: PRINT "NO TICKETS ENTERED": NORMAL : FOR Q = 1 TO 1000: NEXT Q: GOTO 1000
44 V = 0
45 HOME : INVERSE
46 HTAB 12: PRINT ": :"
47 HTAB 12: PRINT " ARE YOU A WINNER "
48 HTAB 12: PRINT ": :"
49 NORMAL : VTAB 6: POKE 34,5
50 IF WN(1) >0 THEN INPUT "USING WINNING NUMBERS (Y/N): ";Q$: IF Q$ = "Y" THEN 141
51 HOME
55 PRINT "INPUT THE WINNING NUMBERS. AFTER EACH NUMBER, HIT THE <RTN> KEY."
60 FOR I = 1 TO 6
70 INPUT WN(I): NEXT I: HOME
80 PRINT "INPUT THE EARLY BIRD NUMBERS. HIT THE <RTN> KEY AFTER EACH NUMBER. IF YOU DO NOT QUALIFY FOR THE EARLY BIRD, ENTER A '0'"
90 FOR I = 1 TO 4
100 INPUT EB(I)
110 IF EB(I) = 0 THEN HOME : GOTO 130
120 NEXT I: HOME
130 PRINT "INPUT THE BONUS NUMBER"
140 INPUT B
141 POKE 34,0: HOME
143 INVERSE : FOR X = 1 TO 39: HTAB X: PRINT " ";: NEXT X: PRINT " ": NORMAL
144 VTAB 1: HTAB 16: FLASH : PRINT "CHECKING": NORMAL : PRINT
145 PRINT "WINNING NUMBERS: ";: FOR X = 1 TO 6: PRINT WN(X);" ";: NEXT X
146 PRINT
147 PRINT "BONUS NUMBER: ";B
148 IF EB(1) >0 THEN PRINT "EARLY BIRD :";: FOR X = 1 TO 4: PRINT EB(X);" ";: NEXT X: PRINT : PRINT : GOTO 150
149 PRINT
150 INVERSE : FOR X = 1 TO 40: HTAB X: PRINT " ";: NEXT X: NORMAL : POKE 34,7: VTAB 10
152 FOR C = 1 TO A
153 FOR X = 1 TO 6:FL(C,X,0) = 0:FL(C,X,1) = 0: NEXT X
155 P = 0:Z = 0:T = 0
160 FOR X = 1 TO 6: FOR Y = 1 TO 6
170 IF MN(C,X) = WN(Y) THEN P = P +1:FL(C,X,1) = 1
180 NEXT Y,X
190 FOR X = 1 TO 6
200 IF MN(C,X) = B THEN Z = 1
205 NEXT X
210 FOR X = 1 TO 6: FOR Y = 1 TO 4
220 IF MN(C,X) = EB(Y) THEN T = T +1:FL(C,X,0) = 1
230 NEXT Y,X
240 IF P = 3 THEN PRINT "YOU GOT 3-NUMBERS RIGHT": GOTO 310
250 IF P = 4 THEN PRINT "YOU GOT 4-NUMBERS RIGHT": GOTO 310
255 IF P = 5 AND Z = 1 THEN PRINT "YOU WON SECOND PRIZE": GOTO 310
260 IF P = 5 THEN PRINT "YOU GOT 5-NUMBERS RIGHT": GOTO 310
280 IF P = 6 THEN INVERSE : FLASH : PRINT "GRAND PRIZE WINNER": NORMAL : GOTO 310
290 IF T = 4 THEN PRINT "YOU ARE AN EARLY BIRD WINNER": GOTO 310
300 NEXT C: PRINT
302 IF V = 1 THEN PRINT "THAT'S ALL......": GOTO 600
304 IF V = 0 THEN SPEED= 1: HTAB 15: INVERSE : PRINT "S O R R Y": NORMAL : SPEED= 255: GOTO 600
310 V = 1:K = A: IF C >K THEN 600
311 IF T = 4 AND P = 3 THEN PRINT "AND THE EARLY BIRD"
312 FOR X = 1 TO 6
313 IF T = 4 AND P = 3 THEN : GOTO 315
314 IF FL(C,X,1) = 1 THEN FLASH : PRINT MN(C,X);: NORMAL : PRINT " ";:FL(C,X,1) = 0: GOTO 319
315 IF FL(C,X,0) = 1 AND T = 4 THEN INVERSE : PRINT MN(C,X);: NORMAL : PRINT " ";:FL(C,X,0) = 0: GOTO 319
316 PRINT MN(C,X);" ";: GOTO 319
319 NEXT X: PRINT : PRINT : NEXT C
600 VTAB 23: PRINT "HIT ANY KEY TO CONTINUE:"
605 POKE 34,0
610 VTAB 23: HTAB 27: GET Z$: GOTO 1000
999 END
1000 REM MAIN MENU
1001 HOME
1002 PRINT : HTAB 12: INVERSE : PRINT ": :"
1003 HTAB 12: PRINT " LOTTO COMPUTER "
1005 HTAB 12: PRINT ": :"
1006 NORMAL
1008 VTAB 8
1009 HTAB 10: PRINT "0) PLAY LOTTARY": PRINT
1010 HTAB 10: PRINT "1) READ IN TICKETS": PRINT
1020 HTAB 10: PRINT "2) ENTER TICKET NUMBERS": PRINT
1030 HTAB 10: PRINT "3) REVIEW AND EDIT TICKETS": PRINT
1040 HTAB 10: PRINT "4) SAVE DATA": PRINT
1050 HTAB 10: PRINT "5) NUMBER GENERATOR": PRINT
1060 HTAB 10: PRINT "6) EXIT": PRINT
1070 HTAB 10: PRINT "SELECTION:"
1080 VTAB 22: HTAB 21: INPUT S$
1090 S = ASC(S$)
1100 IF S <48 OR S >54 THEN PRINT CHR$(7): GOTO 1080
1110 S = S -47: ON S GOTO 42,3000,4000,5000,6000,7000,8000
2000 REM INSTRUCTIONS
2995 GOTO 1000
3000 REM READ IN DATA FROM DISC
3010 HOME
3020 HTAB 12: INVERSE : PRINT ": :"
3030 HTAB 12: PRINT " READ IN TICKETS "
3040 HTAB 12: PRINT ": :"
3045 NORMAL
3050 VTAB 10
3060 PRINT "IS DATA FROM ";: INVERSE : PRINT FILE$;: NORMAL : PRINT " FILE-(Y/N): ": INPUT Q$
3080 IF Q$ = "Y" THEN 3100
3090 IF Q$ = "N" THEN PRINT : INPUT "DATA FILE NAME: ";FILE$
3100 VTAB 20: HTAB 16: FLASH : PRINT "READING": NORMAL
3110 PRINT D$;"OPEN ";FILE$
3120 PRINT D$;"READ ";FILE$
3130 INPUT A
3140 FOR X = 1 TO A: FOR Y = 1 TO 6
3150 INPUT MN(X,Y): NEXT Y,X
3160 PRINT D$;"CLOSE ";FILE$
3950 FOR X = 1 TO 1000: NEXT X: GOTO 1000
4000 REM ENTER DATA
4010 HOME
4020 HTAB 13: INVERSE : PRINT ": :"
4030 HTAB 13: PRINT " ENTER TICKETS "
4040 HTAB 13: PRINT ": :": NORMAL : PRINT
4045 VTAB 6
4050 POKE 34,5
4060 A = A +1
4070 PRINT "TICKET NO. ";A
4080 FOR X = 1 TO 6
4090 INPUT MN(A,X): NEXT X
4100 INPUT "IS THIS CORRECT-(Y/N): ";Q$
4110 IF Q$ = "Y" THEN 4130
4115 IF Q$ = "N" THEN 4070
4120 GOTO 4100
4130 INPUT "CONTINUE-(Y/N): ";Q$
4140 IF Q$ = "Y" THEN A = A +1: HOME : GOTO 4070
4150 IF Q$ = "N" THEN GOTO 4170
4160 GOTO 4130
4170 POKE 34,0: GOTO 1000
5000 REM REVIEW AND EDIT
5005 HOME
5010 PRINT
5020 INVERSE : HTAB 13: PRINT ": :"
5030 HTAB 13: PRINT " REVIEW & EDIT "
5040 HTAB 13: PRINT ": :": NORMAL
5050 VTAB 20: PRINT "<ESC> ESCAPE TO MENU.": PRINT "<RTN> CONTINUE TO REVIEW/EDIT": PRINT "--> SCAN UP.": PRINT "<-- SCAN DOWN": POKE 34,6: POKE 35,19
5075 VTAB 8
5080 FOR C = 1 TO A
5085 HOME
5090 VTAB 8: PRINT "POSITION OF TICKET IN FILE: ";: INVERSE : PRINT C: NORMAL
5100 PRINT "THE SIX TICKETS NUMBERS ARE:": PRINT
5110 V = 11: FOR X = 1 TO 6: VTAB V: HTAB 20: PRINT MN(C,X):V = V +1: NEXT X
5130 V = 11:H = 20:T = 1
5140 VTAB V: HTAB (H -1): PRINT ">";: GET Q$
5145 IF Q$ = CHR$(8) AND T = 6 THEN GOSUB 5300:T = 1:V = V -5: GOTO 5140
5150 IF Q$ = CHR$(8) THEN GOSUB 5300:T = T +1:V = V +1: GOTO 5140
5160 IF Q$ = CHR$(21) AND T = 1 THEN GOSUB 5300:T = 6:V = V +5: GOTO 5140
5170 IF Q$ = CHR$(21) THEN GOSUB 5300:T = T -1:V = V -1: GOTO 5140
5180 IF Q$ = CHR$(13) THEN NEXT C: GOTO 5270
5190 IF Q$ = CHR$(27) THEN POKE 34,0: POKE 35,24: HOME : GOTO 1000
5200 S = ASC(Q$) -48: IF S >0 AND S <10 THEN 5220
5210 PRINT "<CTRL-G>": GOTO 5140
5220 VTAB V: HTAB H: PRINT S;: GET Q$
5230 IF Q$ = CHR$(13) THEN VTAB V: HTAB (H +1): PRINT " ":MN(C,T) = S: GOTO 5140
5240 U = ASC(Q$) -48: IF U > -1 AND U <10 THEN 5260
5250 PRINT "<CTRL-G>": GOTO 5140
5260 VTAB V: HTAB (H +1): PRINT U:MN(C,T) = S *10 +U: GOTO 5140
5270 POKE 34,0: POKE 35,24: HOME : VTAB 12: HTAB 15: INVERSE : PRINT "THAT'S ALL": NORMAL : FOR X = 1 TO 1000: NEXT X: GOTO 1000
5300 VTAB V: HTAB (H -1): PRINT " ";MN(C,T): RETURN
5990 VTAB 12: HTAB 13: FLASH : PRINT "NOT AVAILABLE": NORMAL : FOR O = 1 TO 1000: NEXT O
5995 GOTO 1000
6000 REM SAVE DATA TO DISC
6010 HOME
6020 HTAB 14: INVERSE : PRINT ": :"
6030 HTAB 14: PRINT " SAVE TICKETS "
6040 HTAB 14: PRINT ": :": NORMAL
6050 VTAB 10
6060 PRINT "SAVE DATA UNDER ";: INVERSE : PRINT FILE$;: NORMAL : PRINT " (Y/N):";: INPUT Q$
6070 IF Q$ = "Y" THEN 6090
6080 IF Q$ = "N" THEN PRINT : INPUT "SAVE UNDER WHAT FILE NAME: ";FILE$
6090 VTAB 20: HTAB 17: FLASH : PRINT "SAVING": NORMAL
6100 PRINT D$;"OPEN ";FILE$
6110 PRINT D$;"DELETE ";FILE$
6120 PRINT D$;"OPEN ";FILE$
6130 PRINT D$;"WRITE ";FILE$
6140 PRINT A
6150 FOR X = 1 TO A: FOR Y = 1 TO 6
6160 PRINT MN(X,Y): NEXT Y,X
6170 PRINT D$;"CLOSE ";FILE$
6850 FOR X = 1 TO 1000: NEXT X
6900 GOTO 1000
7000 REM TICKET GENERATOR
7001 F = 0
7010 HOME
7015 INVERSE
7020 HTAB 12: PRINT ": :"
7030 HTAB 12: PRINT " LOTTO GENERATOR "
7040 HTAB 12: PRINT ": :"
7045 NORMAL
7047 POKE 34,5
7050 VTAB 10
7060 HTAB 14: PRINT "1) LOTTARIO": PRINT : HTAB 14: PRINT "2) LOTTO 649": PRINT : HTAB 14: PRINT "SELECTION:"
7070 VTAB 14: HTAB 25: INPUT S$
7080 S = VAL(S$): IF S <1 OR S >2 THEN PRINT "<CTRL-G>": GOTO 7070
7090 IF S = 1 THEN S = 39: GOTO 7110
7100 S = 49
7110 HOME : VTAB 12: HTAB 12: INPUT "NUMBER OF TICKETS: ";N
7115 HOME : VTAB 12
7120 PRINT "WOULD YOU LIKE THE GENERATED NUMBERS"
7130 INPUT "TO BE ENTERED AS THE CURRENT FILE(Y/N)";Q$
7140 IF Q$ = "Y" THEN F = 1:A = N
7150 HOME
7160 FOR C = 1 TO N
7165 FOR X = 1 TO 6
7170 G(X) = INT( RND(1) *S +1): NEXT X
7180 FOR R = 1 TO 5: FOR Q = R +1 TO 6
7190 IF G(R) = G(Q) THEN 7165
7195 NEXT Q,R
7200 I = 0
7210 FOR V = 5 TO 34 STEP 5:I = I +1
7220 PRINT TAB( V)G(I);: IF F = 1 THEN MN(C,I) = G(I)
7230 NEXT V: PRINT : PRINT : NEXT C
7240 PRINT : HTAB 8: FLASH : PRINT "HIT ANY KEY TO CONTINUE": NORMAL : GET T$
7990 POKE 34,0
7995 GOTO 1000
8000 REM EXIT PROGRAM
8010 HOME
8020 END
9000 REM ERROR HANDLING
9001 POKE 34,0
9003 EN = PEEK(222)
9010 CALL 768
9011 IF EN = 8 THEN FLASH : PRINT : PRINT : HTAB 15: PRINT "I/O ERROR": NORMAL : FOR X = 1 TO 1000: NEXT X:A = 0: GOTO 1000
9012 IF EN = 5 THEN : FLASH : PRINT : PRINT : HTAB 15: PRINT "END OF DATA": NORMAL : FOR T = 1 TO 1000: NEXT T:A = 0: GOTO 1000
9013 IF EN = 6 THEN FLASH : PRINT : PRINT : HTAB 13: PRINT "FILE NOT FOUND": NORMAL : FOR T = 1 TO 1000: NEXT T:A = 0: GOTO 1000
9014 IF EN = 255 THEN GOTO 1000
9015 IF EN = 53 THEN 1000
9016 IF EN = 9 THEN PRINT : HTAB 15: FLASH : PRINT "DISK FULL": NORMAL : FOR T = 1 TO 1000: NEXT T: GOTO 1000
9018 POKE 216,0
9020 RESUME : GOTO 1000
10000 TEXT : HOME : VTAB 9: HTAB 10: PRINT "PROGRAM BY: ANDY RAUER": PRINT : HTAB 14: PRINT "DATE: SEPT/84": FOR X = 1 TO 2500: NEXT X: RETURN